
/** 手写AJAX */
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://www.example.com/api');
xhr.send(obj);
xhr.onreadystatechange = () => {
    // AJAX状态码
    // 0: 请求未初始化，未open
    // 1: 请求初始化未发送，open未send
    // 2: 请求已发送，send已发送
    // 3: 请求正在处理
    // 4: 请求已经完成
    if (xhr.readyState === 4 )
        if (xhr.status >= 200 && xhr.status < 300) {
            console.log(xhr.responseText);
        }else {
            console.log('请求失败');
        }
}

/** Promise封装ajax请求 */
const p = new Promise((resolve,reject) => {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://www.example.com/api');
    xhr.send(obj);
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            if (xhr.status >= 200 && xhr.status < 300)
                resolve(xhr.responseText);
            else
                reject(xhr.status);
    }
}});

p.then((value) => {
    console.log(value);
})
.catch((err) => {
    console.error(err);
})
